package Date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @Package Date
 * @Author shimmer
 * @Date 2020/8/1 13:23
 * @TODO
 */
public class Demo {
    //参考：https://www.runoob.com/java/java-date-time.html
    public static void main(String[] args) {
        // 使用当前日期和时间初始化 Date 对象
        Date date = new Date();
        // 使用 toString() 函数显示日期时间
        System.out.println(date.toString());
        //返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
        System.out.println(date.getTime());

        // 1. 使用 SimpleDateFormat 格式化日期
        System.out.println("当前时间：" + new SimpleDateFormat("yyyy-MM-dd E ahh:mm:ss")
                .format(date));
        /*
        G	纪元标记	    AD
        y	四位年份	    2001
        M	月份	        July or 07
        d	一个月的日期	10
        h	 A.M./P.M.  (1~12)格式小时	
        H	一天中的小时  (0~23)	
        m	分钟数	    30
        s	秒数	        55
        S	毫秒数	    234
        E	星期几	    Tuesday
        D	一年中的日子	360
        F	一个月中第几周的周几	2 (second Wed. in July)
        w	一年中第几周	40
        W	一个月中第几周	1
        a	A.M./P.M.   标记
        k	一天中的小时  (1~24)	
        K	A.M./P.M.   (0~11)格式小时	
        z	时区	        Eastern Standard Time
        '	文字定界符	Delimiter
        "	单引号	    `
        * */

        // 2. 解析字符串为日期
        // SimpleDateFormat 类有一些附加的方法，特别是parse()，
        // 它试图按照给定的SimpleDateFormat 对象的格式化存储来解析字符串。
        try {        
            String str = "01:51:17";
            SimpleDateFormat ft = new SimpleDateFormat("hh:mm:ss");
            System.out.println(ft.parse(str));
        } catch (ParseException e) {
            e.printStackTrace();
        }

        // 3.测量时间（以毫秒为单位）
        try {
            long start = System.currentTimeMillis();
            System.out.println(new Date());
            Thread.sleep(3 * 1000);//休眠3秒
            long end = System.currentTimeMillis();
            System.out.println(new Date());
            System.out.println("花费" + (end - start) / 1000 + "秒");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
